from flask import request, jsonify

from application.vendor.code import Code
from application.vendor.utils import Utils
import logging


class BaseApi:
    """
    * 初始化
    * @param  self
    """

    def __init__(self):
        self.logger = logging.getLogger(__name__)

    """
    * 返回成功信息
    * @param  msg string
    * @return json
    """

    def success_data(self, data='', msg='', show=True):
        return self.json({'error_code': Code.SUCCESS, 'data': Utils.db_l_to_d(data), 'msg': msg, 'show': show})

    """
    * 格式化返回值信息
    """

    def json(self, body={}):
        debug_id = Utils.unique_id()
        data = {
            'LOG_ID': debug_id,
            'IP_ADDRESS': request.remote_addr,
            'REQUEST_URL': request.url,
            'REQUEST_METHOD': request.method,
            'PARAMETERS': request.args,
            'RESPONSES': body
        }
        body['debug_id'] = debug_id
        # 可以在此处增加log日志
        self.logger.debug(data)
        return jsonify(body)
